The structure and interpretation of the computer science curriculum

نویسندگان

  • Matthias Felleisen
  • Robert Bruce Findler
  • Matthew Flatt
  • Shriram Krishnamurthi
چکیده

Nearly twenty years ago, Structure and Interpretation of Computer Programs (SICP) changed the intellectual landscape of introductory computing courses. Unfortunately, three problems—its lack of an explicit program design methodology, its reliance on domain knowledge, and the whimsies of Scheme— have made it integrate poorly with the rest of the curriculum and fail to maintain its position in several departments. In this paper we analyze the structural constraints of the typical computer science curriculum and interpret SICP and Scheme from this perspective. We then discuss how our new book, How to Design Programs, overcomes SICP’s problems. We hope that this discussion helps instructors understand the structure and interpretation of introductory courses on computer science. 1 SICP Conquers the World The publication of The Structure and Interpretation of Computer Programs (SICP) [1] changed the landscape of the introductory computing curriculum. Originally intended for MIT’s introductory course for computer science and electrical engineering majors, use of the book quickly spread around the world. As universities from Japan to Germany adopted the book, they also switched to Scheme and a (mostly) functional approach to programming. The success of SICP and Scheme is mostly due to its fresh philosophy. The SICP approach liberates the introductory course from the tyranny of syntax. Instead of arranging a course around the syntactic constructs of a language, SICP briefly explains the simple syntax of Scheme and then presents a series of deep concepts in computing and programming: functional programming, higher-order functions, data abstraction, streams, data-directed programming, a simulation of OOP via message passing, logic programming, interpreters, compilers, and register machines. To this day, SICP has a deserved reputation as one of the great books of computer science. A large number of colleges and universities still put the book on reading lists. Amazon.com’s pages contain 85 overwhelmingly positive reviews. Computer scientists invariably recommend it to gifted students. Yet, over the past decade, the use of SICP and Scheme rapidly declined in introductory courses. In the US, many of those who implemented SICP have switched to the currently fashionable object-oriented programming language (C++, Java, C#). SICP declined in part because the material is difficult and partly out of systemic problems with the approach. Some instructors complained about the electrical engineering bias of the book.1 Others blamed functional programming, or specifically Scheme: Wadler’s critique [9] exposed genuine problems with the language. Nowadays, the critics even include MIT professors with experience in teaching SICP. Jackson and Chapin, both at MIT, recently wrote that [f]rom an educational point of view, our experience suggests that undergraduate computer science courses should emphasize basic notions of modularity, specification, and data abstraction, and should not let these be displaced by more advanced topics, such as design patterns, objectoriented methods, concurrency, functional languages, and so on [5]. Although this quote doesn’t mention SICP, the two are referring to their courses at MIT, where they encounter the “products” of the SICP course. Advocates of Scheme and functional programming should be concerned by these reactions. Clearly, SICP, Scheme, and functional programming fail to meet some basic needs in the introductory curriculum. We shouldn’t just brush off these criticisms but study them, determine their true nature, and react to them. In this paper, we present our own personal reaction. More specifically, we present the design rationale behind our new book How to Design Programs (HTDP). In section 2, we analyze the structure of a conventional computing curriculum and the constraints it imposes on the first course. In section 3, we remind readers why Scheme is a good starting point for a first language, given a good programming environment. Section 4 presents our interpretation of SICP and explains how HTDP improves on SICP. We compare HTDP to SICP rather than to the current situation for two reasons. First, we believe that SICP is currently the strongest approach to an introductory course on programming and computing, even if it is no longer in vogue. Second, SICP made functional programming widely visible. We believe that it is unfortunate how its flaws overshadowed this movement to functional programming. 1 This criticism is, of course, unfair, considering that the book was intended for electrical engineering majors.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Integration of Science and Technology in Primary Curriculum

One of the main issues to be considered in the educational system is education. Education is the result of four elements which are interacting with each other. These four elements are: teaching, learning, structure and curriculum. Curriculum is a plan for action which forms the structure. Another issue is the status of knowledge and the way we can transform it into educational materials. In pos...

متن کامل

Comparative Study of Nursing PhD Curriculum in Iran and Widener University

Introduction: Nursing PhD programs are developing across the world and graduates, as professional nurses, are expected to reform nursing care in health systems according to society's needs. This study aimed to compare the curricula of nursing PhD programs in Widener University and Iran. Methods: This descriptive-comparative study was carried out in 2014. In order to compare components of nursin...

متن کامل

An Integrated Model for the Iranian General Dentistry Curriculum

Background: The purpose of this study is to present an integrated model for the Iranian general dentistry curriculum. Methods: In this study, the qualitative method of focal groups was used. First, using library studies and analysis and interpretation of the resulted information, possible types of integration in the dental curriculum and real experiences of some of the world's leading universit...

متن کامل

Methods of Teaching Electrocardiogram: Which One Is the Best?

Introduction: There are many methods for teaching ECG interpretation, but deciding on the best method is yet to be discussed. The purpose of this research was to examine teaching methods for ECG interpretation and introduce the most effective ones. Methods: This systematic review was conducted by searching through scientific databases of PUBMED, Science Direct, SID and IranMedex. Papers publish...

متن کامل

The Experience of Integration in the Dental Curriculum of the World’s Accredited Universities and How to Apply it in Iran

Introduction: The aim of this paper is to review integration experience in general dentistry curriculum in the world universities in the twenty-first century and advantage of it to review the same curriculum in Iran. Method: In this study, a qualitative method is used. First, by library research and the analysis and interpretation of data, integration of the dental curriculum were some prestig...

متن کامل

MMDT: Multi-Objective Memetic Rule Learning from Decision Tree

In this article, a Multi-Objective Memetic Algorithm (MA) for rule learning is proposed. Prediction accuracy and interpretation are two measures that conflict with each other. In this approach, we consider accuracy and interpretation of rules sets. Additionally, individual classifiers face other problems such as huge sizes, high dimensionality and imbalance classes’ distribution data sets. This...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:
  • J. Funct. Program.

دوره 14  شماره 

صفحات  -

تاریخ انتشار 2004